package com.neusoft.ch7.singletone;

public class Singletone {

	// 属性
	// 按业务需求扩展即可
	
	// (1) 声明一个单件类类型静态变量（静态属性）
	private static Singletone mySingletone;
	// (2) 将构造方法私有化（用private修饰）【目的：外部类无法通过new创建该类的实例对象】

	private Singletone() {
	}

	// (3) 提供一个静态方法，用于获取该单件模式类的实例对象

	/**
	 * 获取单件模式类的唯一的一个实例对象
	 * 
	 * @return 单件模式类的实例对象
	 */
	public static Singletone getInstance() {
		// 如果当前的静态变量mySingletone还没有初始化赋值，则进行初始化赋值处理，
		// 后面如果再有调用，则直接返回已经初始化的值即可
		// 判定是否初始化赋值，如果没有初始化，则进行初始化赋值
		if (mySingletone == null) {
			// 第一次进行初始化赋值
			mySingletone = new Singletone();
		}

		return mySingletone;
	}

	// 行为
	// 按业务需求扩展即可
	public void printMe() {
		System.out.println("单件模式类的行为。。。");
	}
}
